/**
 * 
 */
package com.weirq.mvc.login;

import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * @author pc-Haitao
 * @ClassName:SendEmail  往邮箱发送激活邮件链接
 * @Version 版本
 * @Modifiedby 修改人
 * @Copyright 公司名称
 * @date 2016年8月23日下午2:32:05
 */
public class SendEmail {
	public static final String HOST = "smtp.163.com";
	public static final String PROTOCOL = "smtp";
	public static final int PORT = 25;
	public static final String FROM = "18920079569@163.com";// 发件人的email
	public static final String PWD = "WU562529310";// 发件人密码

	/**
	 * 获取Session
	 * 
	 * @return
	 */
	private static Session getSession() {
		Properties props = new Properties();
		props.put("mail.smtp.host", HOST);// 设置服务器地址
		props.put("mail.store.protocol", PROTOCOL);// 设置协议
		props.put("mail.smtp.port", PORT);// 设置端口
		props.put("mail.smtp.auth", true);
		// 通过传入的参数获得Authenticator子类对象
		Authenticator authenticator = new Authenticator() {
			@Override
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication(FROM, PWD);
			}
		};
		Session session = Session.getDefaultInstance(props, authenticator);
		return session;
	}

	public static void send(String toEmail, String content) {
		Session session = getSession();
		try {
			// Message是一个抽象类，已知的实现类有MimeMessage
			Message msg = new MimeMessage(session);
			// 连接Internet地址
			msg.setFrom(new InternetAddress(FROM));// 发件人
			InternetAddress[] address = { new InternetAddress(toEmail) };// 声明一个InternetAdress数组类对象
			msg.setRecipients(Message.RecipientType.TO, address);// 收件人/抄送人/暗送人
			msg.setSubject("账号激活邮件");// 设置标题
			msg.setSentDate(new Date());// 设置日期
			msg.setContent(content, "text/html;charset=utf-8");// 内容
			// 发送消息
			Transport.send(msg);
		} catch (MessagingException mex) {
			mex.printStackTrace();
		}
	}
}
